﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using QLNhaSach.BUS;
using QLNhaSach.BUS.DTO;

namespace QLNhaSach.GUI.NhanVienAdmin
{
    public partial class CapNhapTK : Form
    {
        DataTable dt = new DataTable();
        NhanVienDTO nv = new NhanVienDTO();
        public CapNhapTK()
        {
            InitializeComponent();
        }

        private void buttonX1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
     
        private void lvDSNhanVien_SelectedIndexChanged(object sender, EventArgs e)
        {
            int index = lvDSNhanVien.FocusedItem.Index;
            if (index != -1)
            {
                DataRow dr = dt.Rows[index];
                lbTenNV.Text = dr["HoTen"].ToString();
                txtDiaChi.Text = dr["DiaChi"].ToString();
                txtDienThoai.Text = dr["DienThoai"].ToString();
                dtpNgayLap.Value = Convert.ToDateTime(dr["NgaySinh"]);
                txtNghiepVu.Text = dr["PhanQuyen"].ToString();                
                nv.MaNV = Convert.ToInt16(dr["MaNV"]);
                nv.NgaySinh = Convert.ToDateTime(dr["NgaySinh"]);
                nv.HoTen = dr["HoTen"].ToString();
                nv.PhanQuyen = Convert.ToInt16(dr["PhanQuyen"]);
                nv.GioiTinh = Convert.ToInt16(dr["GioiTinh"]);
                nv.UserName = dr["Username"].ToString();
                nv.PassWord = dr["Password"].ToString();
                nv.TinhTrang = Convert.ToInt16(dr["TinhTrang"]);

                if (nv.GioiTinh == 0)
                    cbGioiTinh.SelectedIndex = 1;
                else
                    cbGioiTinh.SelectedIndex = 0;
            }
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            nv.DiaChi = txtDiaChi.Text;
            nv.DienThoai = txtDienThoai.Text;

            if (NhanVienAdminBUS.CapNhapTKNV(nv) == NhanVienAdminBUSResult.ERROR)
                MessageBox.Show("Loi");
            CapNhapTK_Load_1(sender, e);
        }

        private void CapNhapTK_Load_1(object sender, EventArgs e)
        {
            dt = NhanVienAdminBUS.HienThiNhanVien();
            lvDSNhanVien.Items.Clear();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow dr = dt.Rows[i];
                ListViewItem item = new ListViewItem();
                item.Text = dr["HoTen"].ToString();
                item.SubItems.Add(dr["NgaySinh"].ToString());
                item.SubItems.Add(dr["DiaChi"].ToString());
                item.SubItems.Add(dr["DienThoai"].ToString());
                int pq = Convert.ToInt16(dr["PhanQuyen"]);
                string phanquyen = "";
                if (pq == 1)
                    phanquyen = "Admin";
                else if (pq == 2)
                    phanquyen = "Quản lý";
                else if (pq == 3)
                    phanquyen = "Quản lý sách";
                else if (pq == 4)
                    phanquyen = "Kế toán";
                else if (pq == 5)
                    phanquyen = "Bán sách";
                item.SubItems.Add(phanquyen.ToString());
                lvDSNhanVien.Items.Add(item);
            }
        }

        private void btnTimKiem_Click(object sender, EventArgs e)
        {
            if (txtTenNV.Text == "")
            {
                MessageBox.Show("Bạn chưa điền tên nhân viên");
                txtTenNV.Focus();
                return;
            }
            string sql = "SELECT * FROM NhanVien WHERE (HoTen LIKE '%" + txtTenNV.Text + "%') ";
            if (txtMaNV.Text != "")
            {
                long temp;
                if(long.TryParse(txtMaNV.Text,out temp)==false)
                {
                    MessageBox.Show("Mã nhân viên phải là ký số");
                    txtMaNV.Text="";
                    txtMaNV.Focus();
                    return;
                }
                sql += "AND (MaNV = " + Convert.ToInt16(txtMaNV.Text) + ") ";
            }
            if (cbNghiepVu.SelectedIndex != -1)
            {
                int temp = cbNghiepVu.SelectedIndex + 1;
                sql += "AND (PhanQuyen = " + temp + ")";
            }
            dt = NhanVienBanSachBUS.TimSach(sql);
            lvDSNhanVien.Items.Clear();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow dr = dt.Rows[i];
                ListViewItem item = new ListViewItem();
                item.Text = dr["HoTen"].ToString();
                item.SubItems.Add(dr["NgaySinh"].ToString());
                item.SubItems.Add(dr["DiaChi"].ToString());
                item.SubItems.Add(dr["DienThoai"].ToString());
                int pq = Convert.ToInt16(dr["PhanQuyen"]);
                string phanquyen = "";
                if (pq == 1)
                    phanquyen = "Admin";
                else if (pq == 2)
                    phanquyen = "Quản lý";
                else if (pq == 3)
                    phanquyen = "Quản lý sách";
                else if (pq == 4)
                    phanquyen = "Kế toán";
                else if (pq == 5)
                    phanquyen = "Bán sách";
                item.SubItems.Add(phanquyen.ToString());
                lvDSNhanVien.Items.Add(item);
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            lbTenNV.Text = "...";
            txtDiaChi.Text = "";
            txtDienThoai.Text = "";
            //txtNgaySinh.Text = "";
            dtpNgayLap.Value = dtpNgayLap.Value.Date;
            txtNghiepVu.Text = "";

            txtMaNV.Text = "";
            txtTenNV.Text = "";
            cbNghiepVu.SelectedIndex = -1;
            txtTenNV.Focus();
            CapNhapTK_Load_1(sender, e);
        }

        private void btnCapNhap_Click(object sender, EventArgs e)
        {
            if (lbTenNV.Text == "...")
                MessageBox.Show("Chọn một nhân viên muốn cập nhập thông tin");
            else
            {
                nv.DiaChi = txtDiaChi.Text;
                nv.DienThoai = txtDienThoai.Text;
                nv.NgaySinh = Convert.ToDateTime(dtpNgayLap.Text);
                int temp;
                if (txtNghiepVu.Text == "")
                {
                    MessageBox.Show("Nghiệp vụ không được để trống");
                    txtNghiepVu.Focus();
                    return;
                }

                if (int.TryParse(txtNghiepVu.Text, out temp) == false)
                {
                    MessageBox.Show("Nghiệp vụ phải là số");
                    txtNghiepVu.Text = "";
                    txtNghiepVu.Focus();
                    return;
                }
                //////////////////////////
                nv.PhanQuyen = Convert.ToInt16(txtNghiepVu.Text);
                nv.GioiTinh = cbGioiTinh.SelectedIndex;
                if (NhanVienAdminBUS.CapNhapTKNV(nv) == NhanVienAdminBUSResult.OK)
                    MessageBox.Show("Cập nhập tài khoản thành công");
                else
                    MessageBox.Show("Cập nhập tài khoản thất bại");
            }
            CapNhapTK_Load_1(sender, e);
        }
    }
}